home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Programming Languages Suite
/
ProgramD2.iso
/
Borland
/
Borland C++ V5.02
/
TOOLBRES.PAK
/
README.TXT
< prev
next >
Wrap
Text File
|
1997-05-06
|
4KB
|
121 lines
ObjectWindows
Copyright (c) 1996 Borland International
Title: TOOLTIP Example
Keywords: TTooltip;Common control
TTooltip, An Introduction
=========================
The TTooltip class encapsulates a tooltip control - a small
pop-up window that displays a single line of descriptive text
giving the purpose of tools in an application. The tools is
either a window, such as a child window or control, or an
application-defined rectangular area within a window's client
area. The tooltip control appears only when the user puts the
cursor on a tool and leaves it there for approximately one-half
second. The tooltip control appears near the cursor and
disappears when the user clicks a mouse button or move the
cursor off the tool.
Creating a TTooltip Object
==========================
The TTooltip class offers two constructor: one for creating a
brand new tooltip control and one for aliasing an existing
control. The following code fragment illustrates how to create a
tooltip control.
void TMyWindow::SetupWindow()
{
TWindow::SetupWindow();
tooltip = new TTooltip(this);
tooltip->Create();
}
Specifying Tools to the tooltip Control
=======================================
Once you created a tooltip, you must specify the tools for which
the control must display a descriptive message. To add a new
tool you must first fill a TToolInfo which describes the tool.
Each tool must have a integer which uniquely identifies that
tool. For example, the following code designates a rectangular
area of a window as a tool.
void
TMyWindow::AddTopLeftTool()
{
uint toolId = ID_TOPLEFT_TOOL; // Tool ID
TRect rect(0, 0, 20, 20); // Tool Rectangle
TToolInfo ti(this, rect, ID_TOPLEFT_TOOL);
tooltip->AddTool(ti);
}
Providing the Tooltip Text
==========================
When adding a tool you may provide the text to be used when
describing the tool as the last parameter to the constructor of
the TToolInfo structure. For example,
TToolInfo ti(this, rect, ID_TOPLEFT_TOOL, "Top Left");
tooltip->AddTool(ti);
However, you may opt to provide the text on demand. This allows
you to customize the message display to the user. The
EV_TTN_NEEDTEXT macro allow you to specify a member function
which can provide the text at runtime. The following code
snippet illustrates:
class TMyWindow : public TWindow {
//
// Additional definition ommitted for clarity
//
protected:
void HandleTooltipText(TTooltipText& tiTxt);
};
DEFINE_RESPONSE_TABLE1(TMyWindow, TWindow)
EV_TTN_NEEDTEXT(ID_TOPLEFT_TOOL, HandleTooltipText),
END_RESPONSE_TABLE;
void
TMyWindow::HandleTooltipText(TTooltipText& tiTxt)
{
tiTxt.CopyText("Top Left square");
}
Additional Information
======================
1. The notification handler of the ObjectWindows TDecoratedFrame
class enhances the mechanism for specifying the tooltip text by
sending a 'TTooltipEnabler' up the command chain. This allows
the 'context' window to provide the text even if it did not
setup the tool. For example, a grid control in focus can
customize the cut, paste and copy tools to specify the data type
being manipulated. ['copy cell' instead of just 'copy'].
2. The EvCommandEnable handler of TDecoratedFrame attempts to
provide the tooltip text by looking in two locations:
(a) First the window's menu is scanned for a menuitem with an id
corresponding to that of the tool. If found, the menustring is
provided.
(b) Next, TDecoratedFrame attempts to load a string resource
with an id corresponding to that of the tool. If found, the
string is scanned for a line-feed character. If successful,
TDecoratedFrame provides the string following the line-feed as
tooltip text.
NOTE: You should structure you hint text string using the
following format:
<string to be displayed on statusbar>\n<tooltip hint text>